#ifndef PANTSURENDERER_H_
#define PANTSURENDERER_H_

#include "PantsuRenderDevice.h"
#include "OpenGLDevice.h"
#include "SceneManager.h"

namespace Pantsu {

	class PantsuRenderer {
		
	public:
		PantsuRenderer( HINSTANCE i_hInst );
		virtual ~PantsuRenderer();

		HRESULT CreateDevice( int i_device_type );
		void    DeInit();
		
	public: /* inline */

		inline void RenderOneFrame() {
			m_pDevice->RenderOneFrame();
		}

		inline PantsuRenderDevice *GetDevice() {
			return m_pDevice;
		}
		
		inline HINSTANCE GetModule() {
			return m_hDLL;
		}

		virtual void SetSceneManager( SceneManager *i_scenemgr ) {
			m_pDevice->SetSceneManager( i_scenemgr );
		}

	private:
		PantsuRenderDevice *m_pDevice;
		SceneManager       *m_SceneManager;
		HINSTANCE           m_hInst;
		HMODULE			    m_hDLL;
	};
}
#endif